//
//  ViewController.swift
//  TableSections
//
//  Created by 李煜 on 2024/9/5.
// 个数组为空则不展示其对应的组.最多3组

import UIKit

class ViewController: UITableViewController {
  // 数据源
  var arr1: [String] = ["主表item1", "主表Item 2"]
  var arr2: [String] = [] // 可能为空
  var arr3: [String] = ["农副产品Item 1", "农副产品item 2"] // 可能为空
  var arrs: [[String]] { [arr1, arr2, arr3].filter { item in
    item.count > 0
  } }
  var sectionTitles: [String] {
    var res = [""] +
      (!arr2.isEmpty ? ["银行账户信息"] : [""]) +
      (!arr3.isEmpty ? ["农副产品信息"] : [""])
     let kk = res.enumerated().filter { idx, item in
      idx != 0 && item.isEmpty
    }
    return kk
  }

  override func viewDidLoad() {
    super.viewDidLoad()

//    print(arrs)
  }

  // MARK: - UITableViewDataSource

  override func numberOfSections(in tableView: UITableView) -> Int {
    var sections = 0

    if !arr1.isEmpty { sections += 1 }
    if !arr2.isEmpty { sections += 1 }
    if !arr3.isEmpty { sections += 1 }

    return arrs.count
  }

  override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return arrs[section].count
  }

  override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    print(sectionTitles)
    return sectionTitles[section]
  }

  override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    print(sectionTitles)
    return sectionTitles[section].isEmpty ? 30 : 0.001
  }

  override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return CGFLOAT_MIN
  }

  override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = "Cell"
    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) ?? UITableViewCell(style: .default, reuseIdentifier: cellIdentifier)
    cell.textLabel?.text = arrs[indexPath.section][indexPath.row]

    return cell
  }
}
